import type {StackParamList} from './stack';
import type {CompositeScreenProps, NavigatorScreenParams } from '@react-navigation/native';
import type {StackNavigationOptions, StackScreenProps} from '@react-navigation/stack';
import type React from 'react';

import { BottomTabScreenProps } from '@react-navigation/bottom-tabs';
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
export type BottomTabParamList = {};
export type HomeTabScreenProps<T extends keyof BottomTabParamList> = CompositeScreenProps<
    BottomTabScreenProps<BottomTabParamList, T>,
    RootStackScreenProps<keyof RootStackParamList>
>;
export type IRouteConfig<T = string> = {
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  component: React.ComponentType<any>;
  name: T;
  options: StackNavigationOptions;
}


export type RootStackParamList = {
  HOME: NavigatorScreenParams<BottomTabParamList>;
  UpdatePass: undefined;
  Welcome: undefined;
} & StackParamList;
export type RootStackScreenProps<T extends keyof RootStackParamList> = StackScreenProps<RootStackParamList, T>;

declare global {
  type RootParamList = RootStackParamList;
}
